package com.admin.service;

import com.admin.entity.Admin;
import com.admin.entity.Station;
import com.admin.entity.StationKeyRecharge;
import com.admin.entity.StationRecharge;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author marisheng
 * @since 2019-11-21
 */
public interface IStationService extends IService<Station> {

    //根据站点Id查询站点详表
    public Map findByIdStation(Map m);


    //判断站点Id存在
    public boolean findById(Integer id);


    //根据id查询站点信息
    public Station queryByIdStationId(int id);

    /**
     * 可以根据编号/名称/日期/查询所有的站点
     * @param page
     * @param limit
     * @param map
     * @return
     */
    public IPage selectAllStation(int page, int limit, Map map);

    public int editterminals(StationRecharge sr);
    //站点分页
    public IPage querywocoinfenye(int page, int limit, Map map);
    //密钥分页
    public IPage selectPasswodFenye(int page,int limit,Map map);

    /**
     * 站点密钥余额增加
     * @param skr
     * @return
     */
    public  int updateStationYue(StationKeyRecharge skr);

    /**
     * 删除站点并且修改上级用户的火币数
     * @param station
     * @return
     */
    public int deleteStation(Station station);

    /**
     * 添加站点
     * @param station
     * @param address
     * @return
     */
    public int addstastion(Station station ,String address);

    /**
     * 查找站点是否同名
     * @param station
     * @return
     */
    public Station findStationName(Station station);

    /**
     * 修改站点信息
     * @param station
     * @param address
     * @return
     */
    public int editStationMes(Station station,String address);

    /**
     * 新增的时候判断站点名称是否重复
     * @param station
     * @return
     */
    public Station selstationName(Station station);

    /**
     * 分页查询可以删除的站点
     * @param page
     * @param limit
     * @param map
     * @return
     */
    public IPage selectAllDelStation(int page,int limit,Map map);


    /**
     * 判断用户名和旧密码是否一致
     * @param map
     * @return
     */
    boolean selectUserPwd(Map<String,String> map);

    /**
     * 修改站点用户密码
     * @param map
     * @return
     */
    boolean updateUserPwd(Map<String,String> map);

    /**
     * 查看是否是管理员
     * @return
     */
    public Map queryThemeAdmin(Integer station_id);

    public Station queryStationLogin(String username, String password);
    /**
     * 查所有版权授权
     * @param page
     * @param limit
     * @param
     * @return
     */
    public IPage selcopyrightstation(int page, int limit, String search, int copyrightid,String token);

    /**
     * 查看是不是登录的那个站点用户   发送的请求
     */
    public int queryStationLoginUser(Integer stationId,String token);

    public int selectIdByStationBh(String stationBh);

    //根据站点编号查找站点对象
    Station selectStationByStationBH(String bh);

    //根据站点编号查找主题
    List getThemeByStation(Station station);

    //获取普通用户站点
    IPage selectAllStation(int page, int limit, Map map, Admin admin);
}
